package com.beiding.jsonanalyzer.analyze.func;

import com.beiding.jsonanalyzer.analyze.func.openfunc.ForEach;
import com.beiding.jsonanalyzer.analyze.func.openfunc.Join;
import com.beiding.jsonanalyzer.analyze.func.openfunc.Len;

import java.util.Formatter;

/**
 * 集合函数
 * 本身也是一个函数工厂
 *
 * @author 丁常磊
 * @date 2022/6/25 11:36
 */
public interface CollectionFunc<W extends FuncBase> extends FuncFactory<W>{

    /**
     * join集合合并成一个
     *
     * @param by
     * @return
     */
    default OneFunc join(String by) {
        return Join.of(this, by);
    }

    default CollectionFunc foreach(Object handle) {
        return ForEach.of(this,handle);
    }

    default OneFunc len() {
        return Len.of(this);
    }


}
